Intent

Es wird eine Anzahl von unterschiedlichen Strategien für unterschiedliche Feinabläufe definiert. Die unterschiedlichen Strategien sind beliebig austauschbar.

Motivation

Für unterschiedliche Konfigurationen der Fertigungszelle sind unterschiedliche Abläufe für die Bearbeitung der Werkstücke nötig. Wird die Anpassung an die aktuelle Konfiguration in der Ablaufsteuerung der Klasse ProcessingControl vorgenommen, führt dies zu Problemen:

Die Schwierigkeiten treten auf, weil Teile des Algorithmus für die Ablaufsteuerung variabel gehalten werden müssen. Das Entwurfsmusters Strategy nach [Gamma et. al., 1995] zeigt hier einen Lösungsweg auf. Mit Hilfe des Entwurfsmuster wird der Algorithmus in zwei Teile geteilt. Der eine Teil ist konstant und braucht bei Veränderung der Konfiguration der Fertigungszelle nicht verändert werden. Der andere Teil ist abhängig von der Konfiguration der Fertigungszelle. Für diesen Teil werden mehrere Klassen definiert, wobei jede dieser Klassen jeweils einen Algorithmus für eine Konfiguration der Fertigungszelle enthält. Durch Austausch der Klassen ist dann eine leichte Anpassung möglich.

Um dies zu vermeiden, werden die Abläufe in einen Grobablauf und einen Feinablauf unterteilt. In dem Grobablauf wird der Teil der Ablaufsteuerung, der unabhängig von der aktuellen Konfiguration ist, definiert. Dieser Grobalauf wird weiterhin in der Klasse ProcessingControl implementiert. In den Feinabläufen werden die Anpassungen an die aktuelle Konfiguration vorgenommen. Die Feinabläufe werden in eigenen Klassen implementiert. Wobei durch die abstrakte Klasse Strategy eine einheitliche Schnittstelle zur Verfügung gestellt wird. Von dieser Klasse werden neue Klassen abgeleitet und in diesen werden dann die unterschiedlichen Feinabläufe implementiert

Applicability

Structure

Participants

Consequences

Implementation

Related Pattern



OSEFA: © '96 Fachhochschule Konstanz, Fachbereich Informatik, Prof. Schmid
Dokumentation: © '97 Universität-GH Siegen, FB 12, Markus Blachnik & Georg Odenthal